1. Field of the Invention
The present invention relates generally to improvements in hard disc drives, and, more particularly, but not by way of limitation to improvements in methods for effecting seeks of a servo head between servo tracks defined on the surface of a disc of the drive.
2. Brief Description of the Prior Art
In hard disc drives used for storing data generated by a computer, rotating discs having magnetizable surface coatings are formatted to define a plurality of concentric data tracks along which are further defined a plurality of data sectors. Data files are then stored in specific sectors on specific tracks for recovery at a later time. Thus, the reading or writing of a particular file must be preceded by movement of a transducer head, by means of which the data is written or read, to the track that contains sectors assigned to that file. To this end, the drive contains a servo system that is generally comprised of a servo head that reads a servo pattern magnetically written to a surface, an actuator that moves the servo head across the surface, and circuitry that generates track crossing pulses as the head moves from one track to an adjacent track. These track crossing pulses are counted during seeks from one track to another to maintain a running log the location of servo head that will indicate when a target track has been reached.
In hard disc drives having a relatively low track density and for which the maximum velocity attained by the servo head is relatively low, simple circuitry is adequate to maintain an accurate count of the tracks remaining in a seek. In particular, it has been found that a state machine that senses a series of states defined by relative magnitudes of signals induced in the servo head by passage of elements of the servo pattern and provides a track crossing pulse each time one of a selected set of state transitions occurs will suffice to maintain an accurate record of the location of the servo head. However, as servo head speeds and track densities have increased to meet demands for increased storage capacity and decreased track access time, difficulties have arisen. Noise in the signals induced in the servo head, imperfections in the surface coatings and other effects can cause a state transition to go undetected so that the track count becomes inaccurate. Unless corrected, this inaccuracy will cause the servo head to move beyond the target track so that it becomes necessary to determine that the head is not aligned with the desired track and perform additional seeks to bring the servo head to the target track. Both the determination and subsequent remedial action take time that vitiates the purpose for moving the servo head at higher velocities; that is, to decrease the time required to effect the movement of the servo head to the appropriate track.
For moderate servo head velocities, this problem can be solved by storing a sequence of track counts during a seek and incrementing the count each time a selected detection function defined on the track counts has a value below the range of values that such function will have during normal track seeking. In particular, an appropriate detection function is one which, in effect, provides the difference between the average velocity of the servo head as determined by recently stored track counts and the average velocity determined by previously stored track counts. Since the acceleration and deceleration of the servo head will lie within a predetermined range, the value of the function must also lie within a determinable range and missing track crossing pulses will shift the range to lower values because of a mis-calculation of the average velocity for the track counting intervals in which the missing track crossing pulses occur. Such approach is facilitated by the operation of the state machine to generate track crossing pulses for only selected state transitions so that missing track crossing pulses occur in groups. For example, in servo systems using the triphase servo pattern described in U.S. Pat. No. 4,811,135 issued Mar. 7, 1989 to Janz, the teachings of which are hereby incorporated by reference, the state machine can fail to generate track crossing pulses only in groups of three so that recently stored track counts during high speed movement of the servo head for which missing track crossing pulses occur will either be accurate or three less than the value that would have been stored had the track crossing pulses not been missed. Thus, when a group of track crossing pulses is not generated, the range of values of the detection function is shifted to a range that is lower than the normal range by the value three. For moderate maximum velocities of the servo head, requiring lower acceleration and deceleration of the head during seeks, the two ranges will not overlap so that the value of the detection function suffices to identify an error in the counting of track crossings during the seek.
With even higher velocities of the servo head, this approach to detecting and correcting for missing track crossing pulses breaks down. The higher velocities are achieved by increasing the acceleration and deceleration of the servo head during the seek so that the natural range of the detection function is expanded to cause overlap between the ranges for the case in which the track count is accurate and the case in which it is not. Moreover, the problem generally cannot be easily solved by merely changing the detection function to enhance the effect of the missing track crossing pulses. To do so would generally require the storage of additional track counts and excessive detection function evaluation time that would increase the time between storage of successive track counts. Not only can this increase in time extend the range of values of the detection function, so that the solution will exacerbate the problem, but it also gives rise to a second problem. Seeks are effected by accelerating and decelerating the servo head in proportion to the difference between the actual velocity of the servo head and a stored demand velocity profile and the values of the demand velocity are determined in relation to the track counts. Between storage of successive track counts the heads are accelerated or decelerated at a substantially constant rate, determined from the previous track count, so that overcontrol of the acceleration and deceleration of the head can occur. Such overcontrol can cause the velocity of the head to depart significantly from the demanded velocities to cause problems in the settling of the head on the target track. As a result, the detection function approach that has been described is generally operable only if the maximum velocity of the servo head is maintained at a low value that limits further decrease in the time required for seeks to be made.